Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Динамічні структури даних. Алгоритми оброблення стеку.

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Задача
Предмет:
Інші

Частина тексту файла

ТР-15 Фундамент Даніїл Варіант – 15 Практичне заняття (25 травня). Тема: “Динамічні структури даних. Алгоритми оброблення стеку.” Завдання: Було обрано 2 завдання: / / Результат виконання: / / Посилання на Replit: https://replit.com/join/prrsnzhbuu-tr-15fundamient Копія коду: #include<iostream> #define SIZE 20 using namespace std; struct Node { int data; struct Node* next; }; struct Node* head; class stack { int size; public: void push(struct Node New); struct Node pop(); int isEmpty(); stack(); void print(); void deleteMax(); void deleteMin(); int getsize(); }; int stack::getsize(){return size;} void stack::print() { struct Node* temp = head; if (head == NULL) cout << "Stack is empty!"; else { cout << head->data << " "; while (temp->next != NULL) { temp = temp->next; cout << temp->data << " "; } } cout << endl; } int stack::isEmpty() { return (head == NULL ? 1 : 0); } void stack::push(struct Node New) {//push to the top of the stack if (isEmpty()) { head = new struct Node; head->data = New.data; head->next = NULL; } else { struct Node *temp = head; while (temp->next != NULL) temp = temp->next; struct Node *t = new struct Node; t->data = New.data; t->next = NULL; temp->next = t; } size++; } void stack::deleteMax() { if (isEmpty()) { cout << "Stack is empty!"; } else if(size == 1) { head = NULL; } else { struct Node *temp = head->next; struct Node *temp2 = head; while(temp->next != NULL) { if(temp2->data < temp->data) { temp2 = temp; } temp = temp->next; } struct Node *temp3; while(temp2->next != NULL) { temp2->data = temp2->next->data; if(temp2->next->next==NULL) temp3=temp2; temp2 = temp2->next; } temp3->next = NULL; } } void stack::deleteMin() { if (isEmpty()) { cout << "Stack is empty!"; } else if(size == 1) { head = NULL; } else { struct Node *temp = head->next; struct Node *temp2 = head; while(temp->next != NULL) { if(temp2->data > temp->data) { temp2 = temp; } temp = temp->next; } struct Node *temp3; while(temp2->next != NULL) { temp2->data = temp2->next->data; if(temp2->next->next==NULL) temp3=temp2; temp2 = temp2->next; } temp3->next = NULL; } } struct Node stack::pop() { size--; if (!isEmpty()) { struct Node* temp = head; struct Node temp2; if (temp->next == NULL) { struct Node t = *head; head = NULL; return t; } else { while (temp->next->next != NULL) temp = temp->next; temp2 = *temp->next; temp->next = NULL; return temp2; } } else cout << "Stack is empty.\n"; } stack::stack() { head = NULL; size=0; } int main() { stack s; int ch = 1; while (ch != 0) { struct Node temp; int num, max, min; cout << "Stack:\n1.Push\n2.Find and delete max element\n3.Find and delete min element\n4.Print stack.\n0.Exit\n"; cin >> ch; switch (ch) { case 0: return 0; case 1: cout << "Enter a num to push "; cin >> num; temp.data = num; s.push(temp); break; case 2: s.deleteMax(); break; case 3: s.deleteMin(); break; case 4: s.print(); break; default: cout << "Bad option\n"; } } }
Антиботан аватар за замовчуванням

03.05.2023 19:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини